PPRD

Section: User Commands (1)
Updated: 15 October 1996
Index Return to Main Contents
 

NAME

pprd - LPD (network printer daemon) for DOS  

SYNOPSIS

pprd [-pport] [-n#] [-t] [-i] [-s] [-b#] [-#] [-ahostlist] [-dhostlist] [-lhost] [-j[port]]  

DESCRIPTION

pprd is a small program that turns an XT or AT running DOS into a dedicated LPD printer server. You can send jobs to the printers from any machine running LPR. It can handle up to 3 parallel printer ports. Serial printers can be handled by running the interrupt I/O driver TSRCOMM, which is in LPTCOM.ZIP and diverting LPTn to COMn.

pprd supports an alternate protocol to LPD, called the Direct protocol here. It is invoked by specifying the -j flag. The job is sent as a TCP data stream ended by closing the connection. The advantage of this protocol is that the size of the job does not need to be known in advance, which could be used to advantage in a print redirector. It is more efficient because there are fewer transactions than in the LPD protocol.  

INSTALLATION

pprd requires: Parallel or serial printer ports connected to printers, a network interface card and a FTP Software specification Packet Driver for it, and a valid WATTCP configuration file, WATTCP.CFG.

To install, edit the file WATTCP.CFG, filling in the entries. Then edit your autoexec.bat file to load the packet driver, then pprd. Something like this:

a:\pprd\ni5210 0x60 2 0x300 0xcc00
rem If you wish to put your wattcp.cfg in a particular directory
set wattcp_cfg=a:\pprd\wattcp.cfg
a:\pprd\pprd

Turn your printers on before starting pprd or it will not detect the printers. Alternatively, use the -n flag in pprd.

pprd outputs tones (C,D,E) for as many printers as detected. pprd displays status on console, including changes in printer status. It responds to LPQ queries, returning status reports to the client.

You can now send jobs from clients with LPR. The printers served are called lpt1 through lpt3, in any mixture of case. You can also set the printer names in WATTCP.CFG by assigning to PRINTER[123]NAME. pprd is multithreaded and can have as many connections as printers active. Control-F1 through F3 can be used to abort jobs on the corresponding printers.

It's probably best to install pprd in a Berkeley LPD environment as a printer accessed via a ifilter, rather than as a remote host. That way you can queue up jobs and implement any LPD filters on the client. A couple of Perl scripts for Berkeley LPD system are provided. Edit lpr.pl to configure and install it as ifilter. Banner.pl should be installed as ofilter. You should provide a dummy file for the lp attribute because LPD expects to be able to open and lock it. This file will not be printed to.

You may wish to restrict access to pprd to certain machines only. The -a and -d options are for this. pprd allows connections only from machines on the same subnet (as determined from the subnet mask) by default; this can be disabled by the -s option.  

OPTIONS

-pport
Listen on port instead of the default 515.
-xy
Disable printers x and y (numbers between 1 and 3).
-n#
# printers, no matter what BIOS claims.
-t
Don't indicate available printers with tones.
-i
Reinitialise printer via hardware line on job abort. This option also enables aborting the job by closing the connection from the client side. In its absence, what remains in the buffer is printed.
-k
Don't abort job if client drops connection. By default, the buffer is flushed and the connection reinitialised if the client closes the connection before the final ack.
-bxy
Print directly to hardware port of printers x and y instead of using the BIOS print service. This only works on real parallel ports, i.e. not redirected to serial ports, files or network connections, and is only likely to improve things with fast printer interfaces, in particular those with memory buffers, such as laser printers. On low speed printers, it isn't likely to make things faster since the bottleneck is the printer.
-s
Indicates local subnet is not special. Before version 1.99, setting this flag meant that no subnet checking would be done at all, that is, any host can connect regardless of the deny list. In version 1.99 this changed to mean that the subnet of the PPRD host is not treated specially and addresses still have to either be in an allow list or not be in a deny list, otherwise access is denied. If you want the former behaviour of -s, that is, open up access to the whole Internet, use -dx.x.x.x alone, where x.x.x.x is an address that will never be used by a client, for instance, the address of the PPRD host.
-alist
Comma separated list of up to 20 domain names allowed connection.
-dlist
Comma separated list of up to 20 domain names denied connection.


-a and -d are mutually exclusive. Domain names can also be network addresses, which have all 0s for the hostid portion, as determined from the subnet mask, in which all hosts on the network are affected by the allow or deny.

-lhost
Log diagnostics via SYSLOG protocol to host.
-jport
Use Direct protocol to port (normally 9100) instead of LPD protocol.
 

CONFIGURATION FILE SETTINGS

Assigning to PRINTER1NAME, PRINTER2NAME, and PRINTER3NAME in WATTCP.CFG will give names other than the default lpt[123] to the printers.  

OTHER FILES

Two auxiliary programs are provided, jd.pl and jd.exe, written in Perl and C respectively. These are sample clients that use the Direct protocol.

Jd.exe reads additional configuration entries in WATTCP.CFG, see jd documentation.

Another Perl script called jdlprd.pl is provided. If this is run on a BSD Unix host, it provides a gateway from jd jobs to the lpr system on Unix.  

SEE ALSO (on Unix)

lpr(1), lpq(1), lpc(8), lpd(8)  

FILES

WATTCP.CFG, LPTCOM.ZIP  

DIAGNOSTICS

Hopefully self explanatory.  

COPYRIGHT

pprd is under the Artistic License, which allows you to freely distribute the program provided the sources accompany, or are made available on request. See Artistic for details.  

AUTHOR

Ken Yap (ken@syd.dit.csiro.au)  

DATE

October 1996


 

Index

NAME
SYNOPSIS
DESCRIPTION
INSTALLATION
OPTIONS
CONFIGURATION FILE SETTINGS
OTHER FILES
SEE ALSO (on Unix)
FILES
DIAGNOSTICS
COPYRIGHT
AUTHOR
DATE

This document was created by man2html, using the manual pages.
Time: 07:24:30 GMT, November 17, 2022